iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

Day 06 如何使用 SDK (Part 1)

看了前幾篇的文章之後,不知道讀者是不是迫不及待想試用看看這個 SDK 了呢?

查看專案的 README.md

筆者的這個專案是開放原始碼,專案網址位於 https://github.com/taichunmin/chameleon-ultra.js

在專案的 README.md 上筆者提供了兩種使用這個 SDK 的方法,第一種方法是在瀏覽器上使用 script tag 把 SDK 放到網頁內,第二種方法是使用 Node.js 加上套件管理工具安裝,然後再使用 require 或 import 的方式引入。

接下來筆者將會一一介紹這幾種使用方法。

在瀏覽器上使用

如果想直接在瀏覽器上面使用,你會需要使用 <script> 把 SDK 放到網頁內,這些程式碼建議放在 <body> 結束之前:

<!-- chameleon-ultra.js require lodash@4, place before any chameleon-ultra libraries -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js"></script>

<!-- chameleon-ultra.js Core -->
<script src="https://cdn.jsdelivr.net/npm/chameleon-ultra.js@0/dist/iife/index.min.js"></script>
<!-- chameleon-ultra.js Crypto1 -->
<script src="https://cdn.jsdelivr.net/npm/chameleon-ultra.js@0/dist/iife/Crypto1.min.js"></script>
<!-- chameleon-ultra.js WebbleAdapter plugin -->
<script src="https://cdn.jsdelivr.net/npm/chameleon-ultra.js@0/dist/iife/plugin/WebbleAdapter.min.js"></script>
<!-- chameleon-ultra.js WebserialAdapter plugin -->
<script src="https://cdn.jsdelivr.net/npm/chameleon-ultra.js@0/dist/iife/plugin/WebserialAdapter.min.js"></script>

然後你就可以在底下再加上 <script>(一樣需放在 <body> 結束之前),然後在裡面使用 ChameleonUltraJS 這個全域變數了:

const { Buffer, ChameleonUltra, WebbleAdapter, WebserialAdapter } = window.ChameleonUltraJS

const ultraUsb = new ChameleonUltra()
ultraUsb.use(new WebserialAdapter())
const ultraBle = new ChameleonUltra()
ultraBle.use(new WebbleAdapter())

然後我們可以嘗試取得 Chameleon Ultra 的版本資訊及 Git 版本:

async function main (ultra) {
  console.log(await ultra.cmdGetAppVersion())
  console.log(await ultra.cmdGetGitVersion())
}

main(ultraUsb)
main(ultraBle)

在 Node.js 上使用

使用套件管理工具來安裝 SDK:

# 使用 npm 安裝
$ npm install chameleon-ultra.js

# 使用 yarn 安裝
$ yarn add chameleon-ultra.js

如果你要使用 SerialPort 來連接 Chameleon Ultra,你需要額外安裝 serialport 套件:

# 使用 npm 安裝
$ npm install serialport

# 使用 yarn 安裝
$ yarn add serialport

然後你就可以建立一個 index.js 檔案,把 SDK 透過 import 或是 require 引用到你的程式碼中:

// import
import { Buffer, ChameleonUltra } from 'chameleon-ultra.js'
import WebbleAdapter from 'chameleon-ultra.js/plugin/WebbleAdapter'
import WebserialAdapter from 'chameleon-ultra.js/plugin/WebserialAdapter'
import SerialPortAdapter from 'chameleon-ultra.js/plugin/SerialPortAdapter'

// require
const { Buffer, ChameleonUltra } = require('chameleon-ultra.js')
const WebbleAdapter = require('chameleon-ultra.js/plugin/WebbleAdapter')
const WebserialAdapter = require('chameleon-ultra.js/plugin/WebserialAdapter')
const SerialPortAdapter = require('chameleon-ultra.js/plugin/SerialPortAdapter')

然後我們可以嘗試取得 Chameleon Ultra 的版本資訊及 Git 版本:

const ultra = new ChameleonUltra()
ultra.use(new SerialPortAdapter())
console.log(await ultra.cmdGetAppVersion())
console.log(await ultra.cmdGetGitVersion())

完整的程式碼範例網址為 https://github.com/taichunmin/chameleon-ultra.js/blob/master/src/example/serialport.ts

參考連結


上一篇
Day 05 示範程式:MFKey32 攻擊
下一篇
Day 07 如何使用 SDK (Part 2)
系列文
用 Web Serial/Bluetooth 來控制 ChameleonUltra 硬體30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言